Skip to content

Switch to winnerspiros/veldrid-spirv fork — 16KB alignment, modern NuGet layout - #212

Merged
winnerspiros merged 8 commits into
masterfrom
copilot/fix-apk-crash-on-startup
Apr 19, 2026
Merged

Switch to winnerspiros/veldrid-spirv fork — 16KB alignment, modern NuGet layout#212
winnerspiros merged 8 commits into
masterfrom
copilot/fix-apk-crash-on-startup

Conversation

Copilot AI commented Apr 19, 2026

Copy link
Copy Markdown
  • Fix iOS entry point warnings: add GenerateTestingPlatformEntryPoint=false to osu.iOS.props
  • Update JetBrains ReSharper InspectCode to use 2026.1.0.1 tool version
  • Validation passed (code review + CodeQL)

Summary by Gitar

  • Build configuration:
    • Added GenerateTestingPlatformEntryPoint=false to osu.iOS.props to resolve iOS entry point build warnings.
  • Tooling updates:
    • Upgraded ReSharper InspectCode tool version to 2026.1.0.1 in configuration files.

This will update automatically on new commits.

Copilot AI and others added 4 commits April 19, 2026 20:10
…dException on Android startup

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/33ba16d0-ecc5-4da7-b743-de84d0bb08e1

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
- Add local-packages/ NuGet source with fork's NuGet from GitHub Release
- Create NuGet.Config with local-packages source + nuget.org
- Update osu-framework ppy.Veldrid.SPIRV version
- Remove PatchElfPageSize workaround (fork ships 16KB-aligned .so)
- Remove MonoAndroid10 AndroidNativeLibrary workaround (fork uses runtimes/ RID layout)
- Remove ExcludeAssets/GeneratePathProperty from SPIRV PackageReference
- Remove MonoAndroid10 validation check from build
- Keep TrimmerRootAssembly safety net for trimmer

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/67ee2d3e-a0a6-45eb-afc3-1b5a5437cd04

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…ework submodule

- Add local-packages/.gitignore to override root *.nupkg exclusion
- Add ppy.Veldrid.SPIRV.1.0.15-gb268bf39ea.nupkg from GitHub Release
- Update osu-framework submodule pointer (bumped ppy.Veldrid.SPIRV version)

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/67ee2d3e-a0a6-45eb-afc3-1b5a5437cd04

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…osu.Android.props

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/67ee2d3e-a0a6-45eb-afc3-1b5a5437cd04

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Copilot AI and others added 2 commits April 19, 2026 23:00
The previous change created a local commit (5bca8375) inside the
osu-framework submodule on detached HEAD but never pushed it to
winnerspiros/osu-framework. CI failed because `git submodule update
--init --recursive` couldn't find the commit on the remote.

Fix: revert the submodule pointer to the original 394ecf5d1 which
exists on the remote. The SPIRV version upgrade is handled by the
direct PackageReference in osu.Android.props (1.0.15-gb268bf39ea
from local-packages), while desktop builds continue using the
framework's 1.0.15-gfbb03d21c2 from nuget.org.

Also add NU1605 to NoWarn to suppress any package downgrade warnings
between the two SPIRV versions.

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/c46f1e62-cf7f-49a3-8504-1d852bbf9eae

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
Move ppy.Veldrid.SPIRV override from osu.Android.props to
Directory.Build.props so ALL projects (desktop, tests, Android)
use the winnerspiros/veldrid-spirv fork (1.0.15-gb268bf39ea).

Add NU1605 suppression globally since NuGet considers this a
"downgrade" (prerelease suffix 'b' < 'f'), but it's actually
a newer fork build with bug fixes.

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/c46f1e62-cf7f-49a3-8504-1d852bbf9eae

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
…PlatformEntryPoint

Microsoft.NET.Test.Sdk v18+ auto-generates a MicrosoftTestingPlatformEntryPoint.Main()
entry point, which conflicts with the explicit Program.Main() in iOS test projects
(they call UIApplication.Main for the iOS app lifecycle). This produces CS7022 warnings.

Fix: add GenerateTestingPlatformEntryPoint=false to osu.iOS.props so all iOS projects
that import it don't get the conflicting auto-generated entry point.

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/4d7369a8-e06b-489e-96f9-5cf74fd3fd4d

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
The GitHub Action (v0.12) defaults to ReSharper tools 2025.3.3.
Override with tool-version: 2026.1.0.1 for the latest analysis engine.

Agent-Logs-Url: https://github.com/winnerspiros/osu/sessions/b643ce60-59ed-4bfa-b945-ea9fe6829fd7

Co-authored-by: winnerspiros <1675249+winnerspiros@users.noreply.github.com>
@winnerspiros
winnerspiros marked this pull request as ready for review April 19, 2026 23:43
Copilot AI review requested due to automatic review settings April 19, 2026 23:43
@winnerspiros
winnerspiros merged commit ccdbea7 into master Apr 19, 2026
11 of 15 checks passed
@gitar-bot

gitar-bot Bot commented Apr 19, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates build/package configuration to consume the winnerspiros/veldrid-spirv fork of ppy.Veldrid.SPIRV (16KB-aligned Android native library + modern runtimes/ layout), removing prior Android ELF-patching workarounds and aligning CI/iOS settings with newer tooling behavior.

Changes:

  • Add repo-local NuGet feed (local-packages/) and pin ppy.Veldrid.SPIRV to 1.0.15-gb268bf39ea via Directory.Build.props.
  • Simplify Android build props by removing ELF page-size patching/workarounds and keeping the SPIR-V assembly rooted for trimming.
  • Disable auto-generated Microsoft Testing Platform entry point for iOS to avoid Program.Main conflicts; set ReSharper InspectCode tool version in CI.

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
osu.iOS.props Disables generated testing entry point to avoid duplicate Main() warnings in iOS test builds.
osu.Android.props Removes prior 16KB ELF patch pipeline; keeps trimming roots and native lib handling/validation.
local-packages/.gitignore Allows checked-in .nupkg files under local-packages/.
NuGet.Config Adds local-packages source (and clears sources) so the forked .nupkg can be restored.
Directory.Build.props Globally pins ppy.Veldrid.SPIRV to the fork version and suppresses NU1605.
.github/workflows/ci.yml Pins ReSharper InspectCode CLI tool version.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Directory.Build.props
Comment on lines +10 to +14
<!-- NU1605: Suppress package downgrade error for ppy.Veldrid.SPIRV.
We intentionally override the framework's 1.0.15-gfbb03d21c2 with the fork's
1.0.15-gb268bf39ea. NuGet considers this a "downgrade" because 'b' < 'f' in
prerelease suffix comparison, but it's actually a newer fork build. -->
<NoWarn>$(NoWarn);NU1605</NoWarn>
Comment thread Directory.Build.props
Comment on lines +33 to +35
This overrides the framework's transitive reference to 1.0.15-gfbb03d21c2. -->
<ItemGroup Label="Veldrid.SPIRV Override">
<PackageReference Include="ppy.Veldrid.SPIRV" Version="1.0.15-gb268bf39ea" />
Comment thread osu.Android.props
and NuGet restore failures for Veldrid.SPIRV. -->
<Target Name="ValidateFrameworkNativeLibraries" BeforeTargets="Build">
<Error Condition="!Exists('$(MSBuildThisFileDirectory)submodules/osu-framework/osu.Framework.Android/arm64-v8a/libbass.so')"
Text="libbass.so not found in submodules/osu-framework/osu.Framework.Android/arm64-v8a/. Ensure the osu-framework submodule is initialised: git submodule update --init --recursive" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants